Although modern genetics as a science is almost two hundred years old, it has only been over the past forty years, along with the emergence and development of computer technology that evolutionary computation has developed. This technology involves the observation of information processing principles in nature that are then transformed into computational algorithms usable in computers for problem solving.
One significant area in the development of such algorithms has been genetic algorithms derived from the evolutionary sciences. Extensive genetic algorithms have been developed for use on the computer in the determination of genetic heritage and evolution, e.g. survival of the fittest: the genetic rise of well adapted organisms surviving in a potentially adverse environment.
With the extensive body of algorithms developed and attendant mathematics for the genetic and hereditary sciences, it followed that the art would try to take advantage of these developed computer algorithms in mathematically analogous technologies. As a result, the genetic algorithm technology has emerged. In this heuristic approach, data elements are treated as equivalent to genes in nature. Individual solutions are represented by alphanumeric character strings (chromosomes), most simply by strings of bits in genetic algorithms. All of the individuals or individual solutions in each generation are allowed to mathematically reproduce in an operation involving a predetermined combination of crossovers, mutations, as well as minor variations involving only minor incremental changes in the individual bits (genes) in the resulting individual solution. All of the individuals of the resulting generation are then evaluated by a fitness function. Then, dependent on whatever parameters may be selected for the replacement of the generations, a subset of parents and offspring form the population for the next reproduction or regeneration. In a basic genetic algorithm, the complete offspring may be used for the next generation, i.e. total generation replacement. In the present applications, the offspring and the parents, or the offspring alone are ranked by a fitness formula or function to provide fitness values, and only a selected percentage of the offspring are moved into the next generation. Of course, how effective the method is depends on how effectively the objective of the genetic algorithm is encoded in the fitness function. In any event, after a number of generations or iterations, the population will hopefully consist of the best adapted individual solutions in terms of the fitness function. In the application of genetic algorithms as described above, it is customary to equate and represent each possible solution as a different chromosome (bit string) and each physical limitation or constraint to the solution as a gene (bit) in the string.
In this environment it is, of course, the objective to move as high a number of the best solutions (chromosomes) into each successive generation. However, dependent on whatever parameters may be selected for the replacement of the generations, sooner or later, it can happen that good individuals (solutions) may die out because they pair with inferior individuals (solutions). In order to offset this result, it has been considered to discard those solutions (chromosomes) the fitness function of which did not change after a number, i.e. 50, of iterations or generations during which such solutions existed, i.e. were not discarded.